﻿namespace Shared
{
    using System;
    using System.Collections.Generic;

    public interface IAlgorithm
    {
        int AllowedRetries { get; }

        double FrameSizeInKilobytes { get; }

        Stack<Frame> Frames { get; }

        double Send(Frame frame, int numberOfClients, double timeDelta, Action<int, double> sendProgressCallback);

        bool WasTransmissionSuccessful(Frame frame);

        void SetupFrames(double kilobytesToTransmit);
    }
}
